package utils

import (
	"os"
	"path/filepath"
)

// 判断所给路径文件/文件夹是否存在
func PathExists(path string) bool {
	path, err := filepath.Abs(path)
	if err != nil {
		return false
	}
	_, sErr := os.Stat(path)
	return sErr == nil
}

// 判断所给路径是否为文件夹
func IsDir(path string) bool {
	path, err := filepath.Abs(path)
	if err != nil {
		return false
	}
	stat, err := os.Stat(path)
	if err != nil {
		return false
	}
	return stat.IsDir()
}

// 判断所给路径是否为文件
func IsFile(path string) bool {
	path, err := filepath.Abs(path)
	if err != nil {
		return false
	}
	stat, err := os.Stat(path)
	if err != nil {
		return false
	}
	return !stat.IsDir()
}

// 判断路径不存在则创建路径
func MkdirAllIfNotExists(path string, perm os.FileMode) error {
	if IsDir(path) {
		return nil
	}
	return os.MkdirAll(path, perm)
}
